스웨거 (소프트웨어)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
스웨거(Swagger)는 API 문서화 및 클라이언트 SDK 생성을 자동화하기 위해 2011년 토니 탬에 의해 개발된 소프트웨어이다. REST 스타일 구조를 기반으로 JSON 표현을 설계했으며, API 설명 표준화를 위해 OpenAPI Initiative를 통해 OpenAPI Specification(OAS)으로 이름이 변경되었다. 스웨거는 API 개발, API 상호 작용, API 문서화 등 다양한 분야에서 활용되며, 특히 코드 자동 생성 및 대화형 사용자 인터페이스를 제공하여 API 개발 효율성을 높인다.
더 읽어볼만한 페이지
- 마크업 언어 - HTML
HTML은 웹 페이지 제작을 위한 표준 마크업 언어로서, 팀 버너스리가 제안하고 구현한 후 인터넷 발전과 함께 널리 사용되며, SGML에 기반하여 하이퍼텍스트 기능으로 다양한 콘텐츠를 표현하고 연결하며, W3C와 WHATWG에서 표준화를 진행하고 최신 버전은 HTML Living Standard이다. - 마크업 언어 - XAML
XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다. - API - Tk (소프트웨어)
Tk는 Tcl 스크립팅 언어의 크로스 플랫폼 GUI 툴킷으로, 다양한 플랫폼 이식과 여러 프로그래밍 언어 바인딩을 지원하며 사용자 정의 가능한 위젯들을 제공한다. - API - ASIO
ASIO는 독일 스타인버그에서 개발한 오디오 입출력 API 규격으로, 낮은 지연 시간과 멀티 채널 I/O를 지원하며 윈도우 운영체제에서 주로 사용된다.
스웨거 (소프트웨어) - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
![]() | |
개발 시작 | 2011년 |
개발사 | 스마트베어 소프트웨어 |
저장소 | GitHub 저장소 |
라이선스 | 아파치 라이선스 2.0 |
웹사이트 | 스웨거 공식 웹사이트 |
2. 역사
워드닉의 기술 공동 창립자인 토니 탬(Tony Tam)은 API 문서화 및 클라이언트 SDK 생성 자동화의 필요성을 느껴 2011년 스웨거를 개발했다.[6] REST 스타일 구조의 유연성을 기반으로 JSON 표현을 설계하였고, SOAP 프로토콜용 도구들을 활용했다.
초기 개발 과정에서 Ayush Gupta는 대화형 사용자 인터페이스를 제안했고, Ramesh Pidikiti는 코드 생성기를 구현했으며, Zeke Sikelianos는 "Swagger"라는 이름을 붙였다.[6] 2011년 9월 스웨거 API 프로젝트가 오픈 소스로 공개된 이후, 독립 실행형 검증기, Node.js 지원, Ruby on Rails 등의 기능이 추가되었다.
초기에는 큰 주목을 받지 못했으나, HTTP API를 기계가 읽을 수 있는 형태로 설명하는 간편함을 제공하며 점차 알려지기 시작했다. API 업계 선구자들과의 회의를 통해 API 설명 표준화 논의가 이루어졌고, 스웨거는 API 공간에서 중요한 혁신으로 자리매김했다.
아파치 2.0 오픈 소스 라이선스 사용을 통해 Apigee, Intuit, 마이크로소프트, IBM 등의 기업들이 스웨거를 채택하면서 빠르게 성장했다.
2011년 사전 사이트 워드닉의 기술공동설립자 토니 탬(Tony Tam)이 스웨거 API 프로젝트를 개발하였다.[6] 워드닉 제품을 개발하는 과정에서 API 문서화와 클라이언트 SDK 생성 자동화의 필요성이 대두되었다. 탬은 HTTP 프로토콜의 유연성을 기반으로 하고 SOAP 프로토콜을 위해 구축된 많은 도구 기능을 사용하여 API의 간단한 JSON 표현을 설계했다. 사용자 인터페이스에 대한 개념은 Ayush Gupta가 제안했으며, 그는 대화형 사용자 인터페이스가 API를 "테스트"하고 개발하려는 최종 사용자에게 도움이 될 것이라고 제안했다. Ramesh Pidikiti는 초기 코드 생성기의 구현을 주도했으며, 디자이너/개발자인 Zeke Sikelianos가 Swagger라는 이름을 지었다. 2011년 9월, 스웨거 프로젝트는 오픈 소스로 공개되었고, 곧이어 독립 실행형 검증기, Node.js 지원 및 Ruby on Rails 등 새로운 기능이 추가되었다.[6]
초기에는 소규모 회사와 독립 개발자 중심으로 사용되었으나, HTTP API에 대한 기계 판독 가능 설명 메커니즘이 부재한 상황에서 스웨거는 이러한 기능을 제공하며 주목받았다. API 설명에 대한 표준화 논의를 위해 토니 탬은 존 무서 (ProgrammableWeb), 마쉬 가디너 (Apigee, 현재 Google 제품), 마르코 팔라디노 (Kong), 킨 레인 (API Evangelist) 등 API 업계 선구자들과 회의를 가졌으나, 구체적인 계획은 도출되지 않았다.
아파치 2.0 오픈 소스 라이선스 사용 덕분에 여러 제품과 온라인 서비스들이 스웨거를 채택하기 시작했고, Apigee, Intuit, 마이크로소프트, IBM 등이 공개적으로 지지하며 빠르게 성장했다.
스웨거 출시 직후, RESTful API 모델링 언어(RAML) (2013년 9월)와 API Blueprint (2013년 4월) 등 HTTP API를 설명하기 위한 대체 기술이 등장했다. 이들은 스웨거보다 더 강력한 재정적 지원을 받았지만, 초기에는 다른 사용 사례에 초점을 맞췄다. 그러나 2014년 중반, 구글 트렌드 자료에 따르면 스웨거에 대한 관심이 다른 두 제품(API Blueprint, RAML)의 합보다 더 빠르게 증가했다.
2015년 11월, 스웨거를 유지 관리하던 SmartBear Software는 리눅스 재단의 후원을 받아 OpenAPI Initiative라는 새로운 조직을 만드는 데 도움을 주고 있다고 발표했다. Google, IBM, 마이크로소프트를 포함한 다양한 회사가 창립 멤버이다.[3] 2016년 1월 1일, 스웨거 사양은 OpenAPI Specification (OAS)으로 이름이 변경되었고, GitHub의 새로운 소프트웨어 저장소로 이전되었다.[4] 이는 API 설명 형식과 오픈 소스 도구 간의 분리를 의미했다. 2017년 7월 기준으로, Sonatype 및 npm 자료를 보면 스웨거 도구는 하루 10만 번 이상 다운로드되었다.
2. 1. 개발 배경
워드닉의 기술 공동 창립자인 토니 탬(Tony Tam)은 API 문서화 및 클라이언트 SDK 생성 자동화의 필요성을 느껴 2011년 스웨거를 개발했다.[6] REST 스타일 구조의 유연성을 기반으로 JSON 표현을 설계하였고, SOAP 프로토콜용 도구들을 활용했다.초기 개발 과정에서 Ayush Gupta는 대화형 사용자 인터페이스를 제안했고, Ramesh Pidikiti는 코드 생성기를 구현했으며, Zeke Sikelianos는 "Swagger"라는 이름을 붙였다.[6] 2011년 9월 스웨거 API 프로젝트가 오픈 소스로 공개된 이후, 독립 실행형 검증기, Node.js 지원, Ruby on Rails 등의 기능이 추가되었다.
초기에는 큰 주목을 받지 못했으나, HTTP API를 기계가 읽을 수 있는 형태로 설명하는 간편함을 제공하며 점차 알려지기 시작했다. API 업계 선구자들과의 회의를 통해 API 설명 표준화 논의가 이루어졌고, 스웨거는 API 공간에서 중요한 혁신으로 자리매김했다.
아파치 2.0 오픈 소스 라이선스 사용을 통해 Apigee, Intuit, 마이크로소프트, IBM 등의 기업들이 스웨거를 채택하면서 빠르게 성장했다.
2. 2. 초기 성장과 경쟁
2011년 사전 사이트 워드닉의 기술공동설립자 토니 탬(Tony Tam)이 스웨거 API 프로젝트를 개발하였다.[6] 워드닉 제품을 개발하는 과정에서 API 문서화와 클라이언트 SDK 생성 자동화의 필요성이 대두되었다. 탬은 HTTP 프로토콜의 유연성을 기반으로 하고 SOAP 프로토콜을 위해 구축된 많은 도구 기능을 사용하여 API의 간단한 JSON 표현을 설계했다. 사용자 인터페이스에 대한 개념은 Ayush Gupta가 제안했으며, 그는 대화형 사용자 인터페이스가 API를 "테스트"하고 개발하려는 최종 사용자에게 도움이 될 것이라고 제안했다. Ramesh Pidikiti는 초기 코드 생성기의 구현을 주도했으며, 디자이너/개발자인 Zeke Sikelianos가 Swagger라는 이름을 지었다. 2011년 9월, 스웨거 프로젝트는 오픈 소스로 공개되었고, 곧이어 독립 실행형 검증기, Node.js 지원 및 Ruby on Rails 등 새로운 기능이 추가되었다.[6]초기에는 소규모 회사와 독립 개발자 중심으로 사용되었으나, HTTP API에 대한 기계 판독 가능 설명 메커니즘이 부재한 상황에서 스웨거는 이러한 기능을 제공하며 주목받았다. API 설명에 대한 표준화 논의를 위해 토니 탬은 존 무서 (ProgrammableWeb), 마쉬 가디너 (Apigee, 현재 Google 제품), 마르코 팔라디노 (Kong), 킨 레인 (API Evangelist) 등 API 업계 선구자들과 회의를 가졌으나, 구체적인 계획은 도출되지 않았다.
아파치 2.0 오픈 소스 라이선스 사용 덕분에 여러 제품과 온라인 서비스들이 스웨거를 채택하기 시작했고, Apigee, Intuit, 마이크로소프트, IBM 등이 공개적으로 지지하며 빠르게 성장했다.
스웨거 출시 직후, RESTful API 모델링 언어(RAML) (2013년 9월)와 API Blueprint (2013년 4월) 등 HTTP API를 설명하기 위한 대체 기술이 등장했다. 이들은 스웨거보다 더 강력한 재정적 지원을 받았지만, 초기에는 다른 사용 사례에 초점을 맞췄다. 그러나 2014년 중반, 구글 트렌드 자료에 따르면 스웨거에 대한 관심이 다른 두 제품(API Blueprint, RAML)의 합보다 더 빠르게 증가했다.
2. 3. OpenAPI Initiative와 표준화
2015년 11월, 스웨거를 유지 관리하던 SmartBear Software는 리눅스 재단의 후원을 받아 OpenAPI Initiative라는 새로운 조직을 만드는 데 도움을 주고 있다고 발표했다. Google, IBM, 마이크로소프트를 포함한 다양한 회사가 창립 멤버이다.[3] 2016년 1월 1일, 스웨거 사양은 OpenAPI Specification (OAS)으로 이름이 변경되었고, GitHub의 새로운 소프트웨어 저장소로 이전되었다.[4] 이는 API 설명 형식과 오픈 소스 도구 간의 분리를 의미했다. 2017년 7월 기준으로, Sonatype 및 npm 자료를 보면 스웨거 도구는 하루 10만 번 이상 다운로드되었다.3. 활용
스웨거의 오픈 소스 도구는 개발, API 상호 작용 및 문서화와 같은 다양한 사용 사례로 나눌 수 있다.
API를 개발할 때, 스웨거 도구를 사용하여 코드 자체를 기반으로 OpenAPI 문서를 자동으로 생성할 수 있다. 이는 API 설명을 프로젝트의 소스 코드에 포함시키는 방식으로, 비공식적으로 코드 우선 또는 하향식 API 개발이라고 불린다.
또는, https://github.com/swagger-api/swagger-codegen 스웨거 코드젠을 사용하여 개발자는 소스 코드와 OpenAPI 문서를 분리하고, 설계로부터 직접 클라이언트 및 서버 코드를 생성할 수 있다. 이를 통해 코딩 측면을 나중으로 미룰 수 있다.
스웨거 코젠 프로젝트를 사용하면 최종 사용자는 OpenAPI 문서를 기반으로 클라이언트 SDK를 직접 생성할 수 있어 사람이 직접 생성한 클라이언트 코드의 필요성을 줄여준다. 2017년 8월 현재, 스웨거 코젠 프로젝트는 클라이언트 SDK 생성을 위해 50개 이상의 다양한 언어와 형식을 지원했다.
OpenAPI 문서로 설명된 경우, 스웨거 오픈 소스 도구를 사용하여 https://github.com/swagger-api/swagger-ui 스웨거 UI를 통해 API와 직접 상호 작용할 수 있다. 이 프로젝트는 대화형 HTML 기반 사용자 인터페이스를 통해 라이브 API에 직접 연결할 수 있도록 한다. UI에서 직접 요청을 보낼 수 있으며 인터페이스 사용자가 옵션을 탐색할 수 있다.[5]
3. 1. API 개발
API를 개발할 때, 스웨거 도구를 사용하여 코드 자체를 기반으로 OpenAPI 문서를 자동으로 생성할 수 있다. 이는 API 설명을 프로젝트의 소스 코드에 포함시키는 방식으로, 비공식적으로 코드 우선 또는 하향식 API 개발이라고 불린다.또는, [https://github.com/swagger-api/swagger-codegen 스웨거 코드젠]을 사용하여 개발자는 소스 코드와 OpenAPI 문서를 분리하고, 설계로부터 직접 클라이언트 및 서버 코드를 생성할 수 있다. 이를 통해 코딩 측면을 나중으로 미룰 수 있다.
3. 2. API 상호 작용
스웨거 코젠 프로젝트를 사용하면 최종 사용자는 OpenAPI 문서를 기반으로 클라이언트 SDK를 직접 생성할 수 있어 사람이 직접 생성한 클라이언트 코드의 필요성을 줄여준다. 2017년 8월 현재, 스웨거 코젠 프로젝트는 클라이언트 SDK 생성을 위해 50개 이상의 다양한 언어와 형식을 지원했다.3. 3. API 문서화
OpenAPI 문서로 설명된 경우, 스웨거 오픈 소스 도구를 사용하여 [https://github.com/swagger-api/swagger-ui 스웨거 UI]를 통해 API와 직접 상호 작용할 수 있다. 이 프로젝트는 대화형 HTML 기반 사용자 인터페이스를 통해 라이브 API에 직접 연결할 수 있도록 한다. UI에서 직접 요청을 보낼 수 있으며 인터페이스 사용자가 옵션을 탐색할 수 있다.[5]4. 한국에서의 활용
참조
[1]
웹사이트
About
https://swagger.io/a[...]
2022-04-24
[2]
웹사이트
FAQ - OpenAPI Initiative
https://www.openapis[...]
2022-04-24
[3]
웹사이트
New Collaborative Project to Extend Swagger Specification for Building Connected Applications and Services
http://www.linuxfoun[...]
2016-04-22
[4]
웹사이트
The OpenAPI Specification
https://github.com/O[...]
2023-02-19
[5]
웹사이트
Documenting Your Existing APIs: API Documentation Made Easy with OpenAPI & Swagger
https://swagger.io/r[...]
2023-03-21
[6]
웹인용
Swagger-Creating Rest API/Services
https://www.linkedin[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com